08/05/2018

RStudio

¿Qué es y por qué R-Studio?

R-Studio es un entorno de desarrollo integrado que hace mƔs fƔcil el trabajo con R.

Es una aplicación informÔtica que proporciona servicios integrales para facilitar la programación y desarrollo del software R.

R-Studio estĆ” disponible de manera gratuita para Windows, MacOS y Linux o para navegadores conectados a RStudio Server.

Nos proporciona una mejor visualización de los datos y grÔficas en el Ôrea de trabajo.

Podemos crear fÔcilmente pÔginas web que incluyen código de R, así como también pueden insertarse fórmulas escritas con latex.

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

##R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

R-Studio

Algo de Programación

Estructuras de control

Comando ¿Qué hace?
if, else, else if Ejecuta un bloque de código si se satisface una condición.
x <- -11
if(x > 0){
  print("x es pos") 
}else if(x < 0){
  print("x es neg")
}else{
  print("x es cero")
}
## [1] "x es neg"

Comando ¿Qué hace?
if, else, else if Ejecuta un bloque de código si se satisface una condición.
x <- 0
if(x > 0){
  print("x es pos") 
}else if(x < 0){
  print("x es neg")
}else{
  print("x es cero")
}
## [1] "x es cero"

Comando ¿Qué hace?
if, else, else if Ejecuta un bloque de código si se satisface una condición.
x <- 5
if(x > 0){
  print("x es pos") 
}else if(x < 0){
  print("x es neg")
}else{
  print("x es cero")
}
## [1] "x es pos"

Comando ¿Qué hace?
ifelse( cond, yes, no ) Si la condición(cond) es TRUE/FALSE, ejecuta la instrucción yes/no.
y <- 10
ifelse(x >= y, x + y, x - y)
## [1] -5

Comando ¿Qué hace?
ifelse( cond, yes, no ) Si la condición(cond) es TRUE/FALSE, ejecuta la instrucción yes/no.
y <- 5
ifelse(x >= y, x + y, x - y)
## [1] 10

Comando ¿Qué hace?
ifelse( cond, yes, no ) Si la condición(cond) es TRUE/FALSE, ejecuta la instrucción yes/no.
y <- -15
ifelse(x >= y, x + y, x - y)
## [1] -10

Comando ¿Qué hace?
for Ejecuta un bloque de código un número fijo de veces.
for(i in 1:3){
  print(i)
}
## [1] 1
## [1] 2
## [1] 3

Comando ¿Qué hace?
for Ejecuta un bloque de código un número fijo de veces.
data("iris")
dim(iris)
## [1] 150   5
head(iris, n = 3)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa

Comando ¿Qué hace?
for Ejecuta un bloque de código un número fijo de veces.
for(j in 2:4){
  print(sd(iris[ , j]))  
}
## [1] 0.4358663
## [1] 1.765298
## [1] 0.7622377
sd(iris[ , 2])
## [1] 0.4358663

Comando ¿Qué hace?
for Ejecuta un bloque de código un número fijo de veces.
x <- c(10, 1000, 100000)
for(k in 1:3){
  y <- rnorm(x[k], mean = 5, sd = 1)
  cat("La media muestral para los ", x[k], "es", mean(y), "\n")
}
## La media muestral para los  10 es 5.076394 
## La media muestral para los  1000 es 4.998057 
## La media muestral para los  1e+05 es 4.996939

Comando ¿Qué hace?
while Ejecuta un bloque de código mientras se cumpla una condición.
z <- 5
while(z > 2){
  cat(z, " no es menor que 2 \n\n")
  z <- z - 1
}
## 5  no es menor que 2 
## 
## 4  no es menor que 2 
## 
## 3  no es menor que 2

Comando ¿Qué hace?
repeat Ejecuta un bloque de código hasta encontrar un break.
x <- c("Monica", "Daniel", "Erwin", "Marco", "Gabriel") ; i <- 1
repeat{
  print(paste("Hola ", x[i]))
  if(x[i] == "Marco") break
  i <- i + 1
}
## [1] "Hola  Monica"
## [1] "Hola  Daniel"
## [1] "Hola  Erwin"
## [1] "Hola  Marco"

Bucles en la lĆ­nea de comando

  • Hacer bucles for, while es muy Ćŗtil cuando se programa, pero no resulta especialmente sencillo cuando se trabaja interactivamente con la lĆ­nea de comando.
  • Es por ello que hay algunas funciones que implementan bucles de manera vectorial para hacer el trabajo mĆ”s sencillo.
  • Estos bucles resultan ser mĆ”s rapidos en tiempo de maquina que los bucles for, while.

Comando ¿Qué hace?
sapply Bucle a lo largo de una lista que evalúa una función en cada elemento.
sapply(iris, class)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
##    "numeric"    "numeric"    "numeric"    "numeric"     "factor"
head(iris, n = 2)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa

Comando ¿Qué hace?
sapply Bucle a lo largo de una lista que evalúa una función en cada elemento.
sapply(iris[, 1:4], mean)
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##     5.843333     3.057333     3.758000     1.199333

Funciones

Comando ¿Qué hace?
function( arglist ){ expr } Crea una función, la cuÔl puede requerir una lista de argumentos(arglist) para evaluar todas las expresiones(expr) contenidas en la misma y retornar(return) un valor(value) deseado.

Funciones

  • Se almacenan como cualquier otro objeto, pero el objeto serĆ” de clase function
  • Pueden pasarse como argumentos de otras funciones.
  • Pueden anidarse, esto es, definir funciones dentro de funciones.
  • Devuelven el valor de la Ćŗltima expresión, a menos que aparezca una indicación explĆ­cita con return().
  • Las llamadas a las funciones de R no tienen que utilizar todos los argumentos. Algunos pueden ser quedar faltantes y otros tener valores por defecto.

fact <- function(x){
  if(x == 0){
    return(1)
  }else{
    x*fact(x - 1)
  }
}
fact(0)
## [1] 1
fact(3)
## [1] 6

fact <- function(x){
  if(x >= 0){
    if(x == 0){
      return(1)
    }else{
      x*fact(x - 1)
    }
  }else{
    cat("El numero ingresado debe ser un entero no negativo")
  }
}
fact(-7)
## El numero ingresado debe ser un entero no negativo

GitHub(Para descargar el material)